A network processor generally controls the flow of packets between a physical transmission medium, such as a physical layer portion of, e.g., an asynchronous transfer mode (ATM) network or synchronous optical network (SONET), and a switch fabric in a router or other type of packet switch. Such routers and switches generally include multiple network processors, e.g., arranged in the form of an array of line or port cards with one or more of the processors associated with each of the cards.
Certain network processors may be configured to support the processing of a variety of different types of data traffic, such as ATM cells, Internet Protocol (IP) packets, as well as other types of packet-based traffic. The ATM traffic is typically in the form of fixed-length 53-byte cells, each including a 5-byte header and a 48-byte payload, while the IP traffic generally comprises variable-length packets. ATM cells and IP packets may be viewed as examples of what are more generally referred to herein as PDUs.
Operation, administration and maintenance (OAM) functions within the network processor may be provided in accordance with an established protocol, such as ITU-T Recommendation I.610, “B-ISDN Operation and Maintenance Principles and Functions,” February 1999, which is incorporated by reference herein.
One type of OAM function relates to performance monitoring (PM). OAM performance monitoring in the ATM context generally involves in-service monitoring of cell traffic on an ATM connection to detect errors and to collect statistical information regarding network reliability. OAM performance monitoring is initiated and released by respective activation and deactivation sequences. Once initiated, one or more OAM forward performance monitoring (FPM) cells are inserted into a stream of user cells on a given connection. The network processor which receives an FPM cell must calculate errors and statistics for a corresponding block of user cells. Results are sent back to the originator of the OAM PM flow as a backwards reporting (BR) cell.
A problem that arises in utilizing OAM performance monitoring in a network processor is that such monitoring is difficult to implement in a manner that provides sufficient flexibility for statistical calculation without degrading overall system performance. Typical conventional approaches involve implementing OAM performance monitoring either entirely in the form of one or more hardware state machines, or entirely in software executed by a host processor associated with the network processor.
The hardware state machine approach is fast but not very flexible. For example, it fails to provide a sufficient level of programmability regarding the particular statistics to be collected, and usually offloads the statistics to a host processor for later collection.
The host processor software approach is very flexible, but may adversely impact overall system performance since the software must update all the statistics and then generate the appropriate BR cells.
It is therefore apparent that a need exists for an improved technique for implementing OAM performance monitoring in a network processor.